500
Is it possible to prevent closing the control's filter bar, so it is always shown

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oColumn,oColumn1
	LOCAL oItems

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oComboBox:Columns():Add("Item"):DisplayFilterButton := .T.
		oColumn := oComboBox:Columns():Add("Pos")
			oColumn:AllowSizing := .F.
			oColumn:AllowSort := .F.
			oColumn:Width := 32
			oColumn:FormatColumn := "1 apos ``"
			oColumn:Position := 0
		oItems := oComboBox:Items()
			oItems:AddItem("Item A")
			oItems:AddItem("Item B")
			oItems:AddItem("Item C")
		oComboBox:FilterBarCaption := "len(value) = 0 ? `<fgcolor=808080>no filter` : value"
		oComboBox:FilterBarPromptVisible := 2/*exFilterBarVisible*/
		oColumn1 := oComboBox:Columns:Item(0)
			oColumn1:FilterType := 240/*exFilter*/
			oColumn1:Filter := "Item B"
		oComboBox:ApplyFilter()
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
499
How can I change the visual appearance of the +/- buttons, open/close glyphs as current visual theme (method 3)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oAppearance
	LOCAL oItems
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oAppearance := oComboBox:VisualAppearance()
			oAppearance:Add(3,"gBFLBCJwBAEHhEJAAEhABDwCg6AADACAxRDgMQBQKAAzAJBIYhiG4cYCgMZhXDOCYXABCEYRXBIZQ7BKNIxjSJ5BhIAAyDSJMjSRJUEhqGCWYDleYYYAKHIMQLJQKQSBcQR9EaBZBAWTpQC0OJDTJRI4TNAgbSYAAYRqoCb6loTKypaxjCQQIgkUBpGKdBynEYsDwSGyJCCJWyIbpKAwoVbcs4AYhuJpaQi+d5PFbjVT8dLAMBwLA8EwXAJ+OpfDxXU7eFKpR5fchXTI8UxXFqXZhkeQrfh7KYVRBKdBQRBEFQPJqnahqOpaXo2RoLUJKcQwHTmHYNQTALyuTALZrWeZ3XrgN74LbtZzVQauYRpbCMEr6bpoWLnFi6Ho1U4llWah1jqSweFqfxPgQQRphi+Yak0YIuqUfJegef4zluaJ3nqPJeCYH4BAeX5TDLBpVGqKRRnwf4flefZtHsX54BYAR/F+EwVnUd5eAMMJKDIChygyIQpAoEh4iIJ5Jlg" +;
		"XIcgCXpIGoFwnGEQh6BEKBgmMIICHgIJCAiUAzgyUoAhwJohkiRgygwYpiGoKwzGIcgKCkNQNCMRIbCYCRYk4QoMiOchWDwNBjhiJJaDYTRiGiFwlCQAhOE8JBJHITIRgwZRZFCFCZBkOIUhKTRpCWAwgGYQ4El4NxlBifIWCcCYCFoaoMGaKYyG6GxlBmGJdhkCAWBIeA5g4U4QhMJAImkPIShRVxGgQJRlCIUISh+SJpnCZIeBgFgiHgO4OlOMINCISByECDQikkGhuh2JwpmqBogCKaYiC6FwhmkQ4yHgYgYiaHopiuaRakCbIsisSpGjYOwaHYKYMCkK5CA2IxrCwCwFigaJrkLTI6lcdANAEgIA=")
			oAppearance:Add(1,"CP:3 -2 -2 2 2")
			oAppearance:Add(4,"gBFLBCJwBAEHhEJAAEhABEICg6AADACAxRDgMQBQKAAzAJBIYhiG4cYCgMZhXDOCYXABCEYRXBIZQ7BKNIxjSJ5BhIAAyDSJMjSRJUEhqGCWYDleYYYAKHIMQLJQKQSBcQR9EaBZBAWTpQC0OJDTJRI4TNAgbSYAAYRqoCb6loTKypaxjCQQIgkUBpGKdBynEYsDwSGyJCCJWyIbpKAwoVbcs4AYhuJpaQi+d5PFbjVT8dLAMBwLA8EwXAJ+OpfDxXU7eFKpR5fchXTI8UxXFqXZhkeQrfh7KYVRBKdBQRBEFQPJqnahqOpaXo2RoLUJKcQwHTmHYNQTALyuTALZrWeZ3XrgN74LbtZzVQauYRpbCMEr6bpoWLnFi6Ho1U4llWah1jqSweFqfxPgQQRphi+Yak0YIuqUfJeg8X4rluaZ3niGB+AQHx/EyShjjEVYqiUR5rnmex/GAB5+AIf4gEeXJFHyXZ3gCTAygyAociMKBKEKBIeCiCZyHYFAnCE" +;
		"eBkh+BghFgRIegOCgYCySAgh4CAkgINAMmMNIgCcCYjn4LoLmMCJGDKC5ijIagoDMYhCAoJg1A0IxEhsJgJFiThChCY5yFYPA0GOGIYloNhNGIaIXCUJACE4TwkEkchOFSFYlFkXhUCUCQZEYTglCSMxaEkYJIBmFJhDeDZZEYPwlgmQhghaGqVDoa4bGaeY6FGGZNlmFIBGEJ4jhiZQ5AkMhAg6E5JCkRoGCUSQ6B6CYiSCBIOh+DhJmmARiWQOJtDsCJSCSBwkXSLIRicaZ6HqIIomoIguhwIpphIHoWDsJ4mCGChpmqOpGheLIOkqUo2iya4DjGJxihiQoSj4IJaDaMpCjCWoGg6PgpBiQ4tHcQJQBAgI=")
			oAppearance:Add(2,"CP:4 -2 -2 2 2")
		oComboBox:LinesAtRoot := 1/*exGroupLinesAtRoot*/
		oComboBox:HasButtons := 4/*exCustom*/
		oComboBox:SetProperty("HasButtonsCustom",.F.,16777216)
		oComboBox:SetProperty("HasButtonsCustom",.T.,33554432)
		oComboBox:Columns():Add("Column")
		oItems := oComboBox:Items()
			h := oItems:AddItem("Root 1")
			oItems:InsertItem(h,,"Child 1")
			oItems:InsertItem(h,,"Child 2")
			oItems:SetProperty("ExpandItem",h,.T.)
			h := oItems:AddItem("Root 2")
			oItems:InsertItem(h,,"Child")
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
498
How can I change the visual appearance of the +/- buttons, open/close glyphs as current visual theme (method 2)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oAppearance
	LOCAL oItems
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oAppearance := oComboBox:VisualAppearance()
			oAppearance:Add(1,"XP:TREEVIEW 2 1")
			oAppearance:Add(2,"XP:TREEVIEW 2 2")
		oComboBox:SetProperty("Background",180/*exTreeGlyphOpen*/,0x1000000)
		oComboBox:SetProperty("Background",181/*exTreeGlyphClose*/,0x2000000)
		oComboBox:LinesAtRoot := -1/*exLinesAtRoot*/
		oComboBox:Columns():Add("Column")
		oItems := oComboBox:Items()
			h := oItems:AddItem("Root 1")
			oItems:InsertItem(h,,"Child 1")
			oItems:InsertItem(h,,"Child 2")
			oItems:SetProperty("ExpandItem",h,.T.)
			h := oItems:AddItem("Root 2")
			oItems:InsertItem(h,,"Child")
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
497
How can I find if the control is running in DPI mode
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		DevOut( Transform(oComboBox:FormatABC("dpi = 1 ? `normal/stretch mode` : `dpi mode`"),"") )

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
496
How can I change the visual appearance of the +/- buttons (method 1)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oAppearance
	LOCAL oItems
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oAppearance := oComboBox:VisualAppearance()
			oAppearance:Add(1,"gBFLBCJwBAEHhEJAAEhABDwCg6AADACAxRDgMQBQKAAzAJBIYhiG4cYCgMZhXDOCYXABCEYRXBIZQ7BKNIxjSJ5BhIAAyDSJMjSRJUEhqGCWYDleYYYAKHIMQLJQKQSBcQR9EaBZBAWTpQC0OJDTJRI4TNAgbSYAAYRqoCb6loTKypaxjCQQIgkUBpGKdBynEYsDwSGyJCCJWyIbpKAwoVbcs4AYhuJpaQi+d5PFbjVT8dLAMBwLA8EwXAJ+OpfDxXU7eFKpR5fchXTI8UxXFqXZhkeQrfh7KYVRBKdBQRBEFQPJqnahqOpaXo2RoLUJKcQwHTmHYNQTALyuTALZrWeZ3XrgN74LbtZzVQauYRpbCMEr6bpoWLnFi6Ho1U4llWah1jqSweFqfxPgQQRphi+Yak0YIuqUfJegef4zluaJ3nqPJeCYH4BAeX5TDLBpVGqKRRnwf4flefZtHsX54BYAR/F+EwVnUd5eAMMJKDIChygyIQpAoEh4iIJ5Jlg" +;
		"XIcgCXpIGoFwnGEQh6BEKBgmMIICHgIJCAiUAzgyUoAhwJohkiRgygwYpiGoKwzGIcgKCkNQNCMRIbCYCRYk4QoMiOchWDwNBjhiJJaDYTRiGiFwlCQAhOE8JBJHITIRgwZRZFCFCZBkOIUhKTRpCWAwgGYQ4El4NxlBifIWCcCYCFoaoMGaKYyG6GxlBmGJdhkCAWBIeA5g4U4QhMJAImkPIShRVxGgQJRlCIUISh+SJpnCZIeBgFgiHgO4OlOMINCISByECDQikkGhuh2JwpmqBogCKaYiC6FwhmkQ4yHgYgYiaHopiuaRakCbIsisSpGjYOwaHYKYMCkK5CA2IxrCwCwFigaJrkLTI6lcdANAEgIA=")
			oAppearance:Add(2,"gBFLBCJwBAEHhEJAAEhABEICg6AADACAxRDgMQBQKAAzAJBIYhiG4cYCgMZhXDOCYXABCEYRXBIZQ7BKNIxjSJ5BhIAAyDSJMjSRJUEhqGCWYDleYYYAKHIMQLJQKQSBcQR9EaBZBAWTpQC0OJDTJRI4TNAgbSYAAYRqoCb6loTKypaxjCQQIgkUBpGKdBynEYsDwSGyJCCJWyIbpKAwoVbcs4AYhuJpaQi+d5PFbjVT8dLAMBwLA8EwXAJ+OpfDxXU7eFKpR5fchXTI8UxXFqXZhkeQrfh7KYVRBKdBQRBEFQPJqnahqOpaXo2RoLUJKcQwHTmHYNQTALyuTALZrWeZ3XrgN74LbtZzVQauYRpbCMEr6bpoWLnFi6Ho1U4llWah1jqSweFqfxPgQQRphi+Yak0YIuqUfJeg8X4rluaZ3niGB+AQHx/EyShjjEVYqiUR5rnmex/GAB5+AIf4gEeXJFHyXZ3gCTAygyAociMKBKEKBIeCiCZyHYFAnCE" +;
		"eBkh+BghFgRIegOCgYCySAgh4CAkgINAMmMNIgCcCYjn4LoLmMCJGDKC5ijIagoDMYhCAoJg1A0IxEhsJgJFiThChCY5yFYPA0GOGIYloNhNGIaIXCUJACE4TwkEkchOFSFYlFkXhUCUCQZEYTglCSMxaEkYJIBmFJhDeDZZEYPwlgmQhghaGqVDoa4bGaeY6FGGZNlmFIBGEJ4jhiZQ5AkMhAg6E5JCkRoGCUSQ6B6CYiSCBIOh+DhJmmARiWQOJtDsCJSCSBwkXSLIRicaZ6HqIIomoIguhwIpphIHoWDsJ4mCGChpmqOpGheLIOkqUo2iya4DjGJxihiQoSj4IJaDaMpCjCWoGg6PgpBiQ4tHcQJQBAgI=")
		oComboBox:LinesAtRoot := -1/*exLinesAtRoot*/
		oComboBox:SetProperty("Background",180/*exTreeGlyphOpen*/,0x1000000)
		oComboBox:SetProperty("Background",181/*exTreeGlyphClose*/,0x2000000)
		oComboBox:Columns():Add("Column")
		oItems := oComboBox:Items()
			h := oItems:AddItem("Root 1")
			oItems:InsertItem(h,,"Child 1")
			oItems:InsertItem(h,,"Child 2")
			oItems:SetProperty("ExpandItem",h,.T.)
			h := oItems:AddItem("Root 2")
			oItems:InsertItem(h,,"Child")
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
495
Is there a way to change the dropdown button arrow to something else ( ebn, sample 3 )

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oItems
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oComboBox:VisualAppearance():Add(1,"gBFLBCJwBAEHhEJAAEhABZEGACAADACAxRDgMQBQKAAzAJBIYhkGYYYCgMZRUDGCYXABCEYRXBIZQ7BKNIxjSJwFgmEgADKMA4SOKIZhrE4bBhGaQRUgyI43RhHUBzVIUcQvE6TZRHCQYHgkNIhDJIM7TPLkeSVJaTIRoKhJUogApQThTMgVRDEThkGoSa6soSoYTDBKybLrSLKagOT5YUDKUqSdKEZRpEq1YztWbaQoCUoqVRRVIWfbNd4JJa4aDhWpYdpeeY5R7bWLgBYVVABL7LLRsSxpHxPF6RXxaeI3GKsaS8G6ic6nPQMHj7I4NS5pUa6Rh2VYNSa8AAtETRYznOw4bTMXAjNIea5bAYIIR5HIoDzVbQcCQAHL9DBeEMIQEEISgGhMGZQmocgymoYRRCIEQ0G2HYBnEIBig4V4zCQGINnmagCECY43medZ6H2Pw/g+X5fnueh/h+R5+AKABfkMWgGgGYA4AICoCGCE5WA4CphACMgSD2IRIDI" +;
		"BICmEd5YGCBpRjGBgegWIYIgWdgoGIRQsiKCZiAiJZ0gGQI4jUS4LECOAiBmDJflGfg2BSY4Al4OhGkOCJ2DgFJjGGfgqgiH5Ch4RhGkqOQmEOEpkFkHQYhJRYyESAokGKHhIhKIxJEmf4VGUeRGFmF5iBkchPhYJQ5GoYIZg6Ug6GoFYmkmNhuhuZwJkYcoagiZ5+HQFRngmZh6h6Z5JnYfodCaCgGBcOpfBQBCAgA==")
		oComboBox:SetProperty("Background",4/*exDropDownButtonUp*/,0x1000000)
		oComboBox:SetProperty("Background",5/*exDropDownButtonDown*/,0x1f0f0f0)
		oComboBox:LinesAtRoot := -1/*exLinesAtRoot*/
		oComboBox:Style := 2/*DropDownList*/
		oComboBox:IntegralHeight := .T.
		oComboBox:Columns():Add("P1")
		oItems := oComboBox:Items()
			h := oItems:AddItem("Root")
			oItems:InsertItem(h,,"Child 1")
			oItems:InsertItem(h,,"Child 2")
			oItems:SetProperty("ExpandItem",h,.T.)
			oItems:SetProperty("SelectItem",h,.T.)
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
494
Is there a way to change the dropdown button arrow to something else ( ebn, sample 2 )

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oItems
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oComboBox:VisualAppearance():Add(1,"gBFLBCJwBAEHhEJAAEhABKgCg6AADACAxRDgMQBQKAAzAJBIYhkGYYYCgMZRUDGCYXABCEYRXBIZQ7BKNIxjSJwFgmEgADKMA4SOKIZhrE4bBhGaQRUgyI43RhHUBzVIUcQvE6TZRHCQYHgkNIhDJIM7TPLkeSVJaTIRoKhJUogApQThTMgVRDEThkGoSa6soSoYTDBKybLrSLKagOT5YUDKUqSdKEZRpEq1YztWbaQoCUoqVRRVIWfbNd4JJa4aDhWpYdpeeY5R7bWLgBYVVABL7LLRsSxpHxPF6RXxaeI3GKsaS8G6ic6nPQMHj7I4NS5pUa6Rh2VYNSa8AAtETRYznOw4bTMXAjNIea5bAYIIR5HIoDzVbQcCQAHL9DBeEMIQEEISgGhMGZQmocgymoYRRCIEQ0G2HYBnEIBig4V4zCQGINnmagCECY43medZ6H2Pw/EeH5wiITwUkWMRsF4PYgEeaZ3gGYBoCWeICk6V5wnMf4FDCAAfAiYQgg4" +;
		"AYAmAWC7gIIYnm2fR/mEUYAF4GIFFEVBYgUYR4BCdoGmKSB6A+CAhDGBBfBiT4IlSdQ9A8WIWCeBJihgZgcg+YJoEIFYMiMSJWAaDZjhiGgogCIooG4QYMAIOQSDUPgilONhIg6JI4GIK4LiQKJGDOFJgGMbJbDcDg5hYR4OCWCJyEyAQiCGChDheZBoDIYg3AMIJEVYQ4AnoZQ4mYeQmDsCJGmGNBwDQTQDEaAQcCYCZKGOHRDHgVgVh4J4phoDISAaEYkGsNhNhMahVhyaJIFSDiuAIBIBCCaJ5mYe4VGGOhyHaBRInIPIRH2D5qkaIopCEOhCieBxjnqKoNgSapaj6OIsE+apOiWJBnkqYo6isKpqiGdIwCwKpWiaJIOlsHo8jIa4JFaTIomwOZuBeMgrmifpKgGbR6lAI4lEaM4ymYKIKCKEpfjqbI6kSHgnEmc5GnIOpfBQBCAg=")
		oComboBox:SetProperty("Background",4/*exDropDownButtonUp*/,0x1000000)
		oComboBox:SetProperty("Background",5/*exDropDownButtonDown*/,0x1808080)
		oComboBox:LinesAtRoot := -1/*exLinesAtRoot*/
		oComboBox:Style := 2/*DropDownList*/
		oComboBox:IntegralHeight := .T.
		oComboBox:Columns():Add("P1")
		oItems := oComboBox:Items()
			h := oItems:AddItem("Root")
			oItems:InsertItem(h,,"Child 1")
			oItems:InsertItem(h,,"Child 2")
			oItems:SetProperty("ExpandItem",h,.T.)
			oItems:SetProperty("SelectItem",h,.T.)
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
493
Is there a way to change the dropdown button arrow to something else ( ebn, sample 1 )

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oItems
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oComboBox:VisualAppearance():Add(1,"gBFLBCJwBAEHhEJAAEhABFACg6AADACAxRDgMQBQKAAzAJBIYhkGYYYCgMZRUDGCYXABCEYRXBIZQ7BKNIxjSJwFgmEgADKMA4SOKIZhrE4bBhGaQRUgyI43RhHUBzVIUcQvE6TZRHCQYHgkNIhDJIM7TPLkeSVJaTIRoKhJUogApQThTMgVRDEThkGoSa6soSoYTDBKybLrSLKagOT5YUDKUqSdKEZRpEq1YztWbaQoCUoqVRRVIWfbNd4JJa4aDhWpYdpeeY5R7bWLgBYVVABL7LLRsSxpHxPF6RXxaeI3GKsaS8G6ic6nPQMHj7I4NS5pUa6Rh2VYNSa8AAtETRYznOw4bTMXAjNIea5bAYIIR5HIoDzVbQcCQAHL9DBeEMIQEEISgGhMGZQmocgymoYRRCIEQ0G2HYBnEIBig4V4zCQGINnmagCECY43medZ6H2Pw/g+X5dlqIh/k8SAFnofxgDgFZ8gGH5ShYCgmiCQgeA6AghAgr5/EyWBUhC" +;
		"BZPngZIvgaSpoHYEYBCEOAMnWCJGgiFgZgmYoIDiBw1iKSB+C4fQHhiRJjgyYoIlYJwXmOA56DqC5iAONIhg+S45AYNoQmGExqEYIJkgicZ2gsDRhG4ToSAgMZqFIOolEiHJzhWSIJGYUAZiWSBsi+EofEkGhiDaCIphSPIZmIcp2GoI4mkmDhGD4JwJgIPQkmcQwqHaCZKgmZI0h6ZwonCFIfmYKIch6IJMhoFh9ggXxIgydQZmjTR5iORhKEaB4PGAOgUkmD5KBiHItiaSwKHaE4CPuBoMVieJMmMH4qgofoIDsRx6jSZorksapGGUIoqiidJHi2RYKmSHIumEchAh2L5rFeWhUDqAxbBQSIxkeCwkjGMpOAsNpBH0Do3kUASAg")
		oComboBox:SetProperty("Background",4/*exDropDownButtonUp*/,0x1000000)
		oComboBox:SetProperty("Background",5/*exDropDownButtonDown*/,0x1808080)
		oComboBox:LinesAtRoot := -1/*exLinesAtRoot*/
		oComboBox:Style := 2/*DropDownList*/
		oComboBox:IntegralHeight := .T.
		oComboBox:Columns():Add("P1")
		oItems := oComboBox:Items()
			h := oItems:AddItem("Root")
			oItems:InsertItem(h,,"Child 1")
			oItems:InsertItem(h,,"Child 2")
			oItems:SetProperty("ExpandItem",h,.T.)
			oItems:SetProperty("SelectItem",h,.T.)
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
492
Is there a way to change the dropdown button arrow to something else ( theme, ebn )

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oAppearance
	LOCAL oItems
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oAppearance := oComboBox:VisualAppearance()
			oAppearance:Add(1,"XP:SCROLLBAR 1 6")
			oAppearance:Add(2,"XP:SCROLLBAR 1 7")
		oComboBox:SetProperty("Background",4/*exDropDownButtonUp*/,0x1000000)
		oComboBox:SetProperty("Background",5/*exDropDownButtonDown*/,0x2000000)
		oComboBox:LinesAtRoot := -1/*exLinesAtRoot*/
		oComboBox:Style := 2/*DropDownList*/
		oComboBox:IntegralHeight := .T.
		oComboBox:Columns():Add("P1")
		oItems := oComboBox:Items()
			h := oItems:AddItem("Root")
			oItems:InsertItem(h,,"Child 1")
			oItems:InsertItem(h,,"Child 2")
			oItems:SetProperty("ExpandItem",h,.T.)
			oItems:SetProperty("SelectItem",h,.T.)
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
491
Is there a way to change the dropdown button arrow to something else ( no visual theme )

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oItems
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oComboBox:UseVisualTheme := 1099/*exBorderVisualTheme+exCheckBoxVisualTheme+exCalendarVisualTheme+exFilterBarVisualTheme+exHeaderVisualTheme*/
		oComboBox:LinesAtRoot := -1/*exLinesAtRoot*/
		oComboBox:Style := 2/*DropDownList*/
		oComboBox:IntegralHeight := .T.
		oComboBox:Columns():Add("P1")
		oItems := oComboBox:Items()
			h := oItems:AddItem("Root")
			oItems:InsertItem(h,,"Child 1")
			oItems:InsertItem(h,,"Child 2")
			oItems:SetProperty("ExpandItem",h,.T.)
			oItems:SetProperty("SelectItem",h,.T.)
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
490
Is there a way to change the dropdown button arrow to something else ( solid color )

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oItems
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oComboBox:SetProperty("Background",5/*exDropDownButtonDown*/,AutomationTranslateColor( GraMakeRGBColor  ( { 190,190,190 } )  , .F. ))
		oComboBox:SetProperty("Background",4/*exDropDownButtonUp*/,AutomationTranslateColor( GraMakeRGBColor  ( { 128,128,128 } )  , .F. ))
		oComboBox:LinesAtRoot := -1/*exLinesAtRoot*/
		oComboBox:Style := 2/*DropDownList*/
		oComboBox:IntegralHeight := .T.
		oComboBox:Columns():Add("P1")
		oItems := oComboBox:Items()
			h := oItems:AddItem("Root")
			oItems:InsertItem(h,,"Child 1")
			oItems:InsertItem(h,,"Child 2")
			oItems:SetProperty("ExpandItem",h,.T.)
			oItems:SetProperty("SelectItem",h,.T.)
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
489
How can I find if there is any filter applied to the control

PROCEDURE OnFilterChange(oComboBox)
	DevOut( "If negative, the filter is present, else not" )
	DevOut( Transform(oComboBox:Items:VisibleItemCount(),"") )
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oColumn
	LOCAL oItems
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:FilterChange := {|| OnFilterChange(oComboBox)} /*Occurs when filter was changed.*/

		oComboBox:BeginUpdate()
		oComboBox:LinesAtRoot := -1/*exLinesAtRoot*/
		oComboBox:TreeColumnIndex := -1
		oComboBox:FilterInclude := 4/*exMatchingItemsOnly*/
		oColumn := oComboBox:Columns():Add("Column")
			oColumn:DisplayFilterButton := .T.
			oColumn:FilterType := 240/*exFilter*/
			oColumn:Filter := "C1"
		oItems := oComboBox:Items()
			h := oItems:AddItem("R1")
			oItems:InsertItem(h,,"C1")
			oItems:InsertItem(h,,"C2")
			oItems:SetProperty("ExpandItem",h,.T.)
			h := oItems:AddItem("R2")
			oItems:InsertItem(h,,"C1")
			oItems:InsertItem(h,,"C2")
		oComboBox:ApplyFilter()
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
488
How can I prevent showing the lines for the hierarchy while using the exMatchingItemsOnly option

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oColumn
	LOCAL oItems
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oComboBox:LinesAtRoot := -1/*exLinesAtRoot*/
		oComboBox:TreeColumnIndex := -1
		oComboBox:FilterInclude := 4/*exMatchingItemsOnly*/
		oColumn := oComboBox:Columns():Add("Column")
			oColumn:DisplayFilterButton := .T.
			oColumn:FilterType := 240/*exFilter*/
			oColumn:Filter := "C1|C2"
		oItems := oComboBox:Items()
			h := oItems:AddItem("R1")
			oItems:InsertItem(h,,"C1")
			oItems:InsertItem(h,,"C2")
			oItems:SetProperty("ExpandItem",h,.T.)
			h := oItems:AddItem("R2")
			oItems:InsertItem(h,,"C1")
			oItems:InsertItem(h,,"C2")
		oComboBox:ApplyFilter()
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
487
Is there any method to get only the matched items and not the items with his parent

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oColumn
	LOCAL oItems
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oComboBox:LinesAtRoot := -1/*exLinesAtRoot*/
		oComboBox:FilterInclude := 4/*exMatchingItemsOnly*/
		oColumn := oComboBox:Columns():Add("Column")
			oColumn:DisplayFilterButton := .T.
			oColumn:FilterType := 240/*exFilter*/
			oColumn:Filter := "C1|C2"
		oItems := oComboBox:Items()
			h := oItems:AddItem("R1")
			oItems:InsertItem(h,,"C1")
			oItems:InsertItem(h,,"C2")
			oItems:SetProperty("ExpandItem",h,.T.)
			h := oItems:AddItem("R2")
			oItems:InsertItem(h,,"C1")
			oItems:InsertItem(h,,"C2")
		oComboBox:ApplyFilter()
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
486
How do I get sorted the column as string, numeric, date, date and time. Also how can it be applied to drop down filter panel

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oColumn,oColumn1,oColumn2,oColumn3,oColumn4
	LOCAL oItems
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oColumn := oComboBox:Columns():Add("Date")
			oColumn:SortType := 2/*SortDate*/
			oColumn:DisplayFilterButton := .T.
			oColumn:DisplayFilterPattern := .F.
			oColumn:DisplayFilterDate := .T.
			oColumn:FilterList := 1296/*exShowFocusItem+exShowCheckBox+exSortItemsDesc*/
		oColumn1 := oComboBox:Columns():Add("DateTime")
			oColumn1:SortType := 3/*SortDateTime*/
			oColumn1:DisplayFilterButton := .T.
			oColumn1:DisplayFilterPattern := .F.
			oColumn1:FilterList := 1296/*exShowFocusItem+exShowCheckBox+exSortItemsDesc*/
		oColumn2 := oComboBox:Columns():Add("Time")
			oColumn2:SortType := 4/*SortTime*/
			oColumn2:DisplayFilterButton := .T.
			oColumn2:DisplayFilterPattern := .F.
			oColumn2:FilterList := 1296/*exShowFocusItem+exShowCheckBox+exSortItemsDesc*/
			oColumn2:FormatColumn := "time(value)"
		oColumn3 := oComboBox:Columns():Add("Numeric")
			oColumn3:SortType := 1/*SortNumeric*/
			oColumn3:DisplayFilterButton := .T.
			oColumn3:FilterList := 1296/*exShowFocusItem+exShowCheckBox+exSortItemsDesc*/
		oColumn4 := oComboBox:Columns():Add("String")
			oColumn4:DisplayFilterButton := .T.
			oColumn4:FilterList := 1296/*exShowFocusItem+exShowCheckBox+exSortItemsDesc*/
		oItems := oComboBox:Items()
			h := oItems:AddItem("01/27/2010")
			oItems:SetProperty("CellCaption",h,1,"01/27/2010 10:00:00")
			oItems:SetProperty("CellCaption",h,2,oItems:CellCaption(h,1))
			oItems:SetProperty("CellCaption",h,3,1)
			oItems:SetProperty("CellCaption",h,4,oItems:CellCaption(h,3))
			h := oItems:AddItem("01/27/2011")
			oItems:SetProperty("CellCaption",h,1,"01/27/2011 09:00:00")
			oItems:SetProperty("CellCaption",h,2,oItems:CellCaption(h,1))
			oItems:SetProperty("CellCaption",h,3,11)
			oItems:SetProperty("CellCaption",h,4,oItems:CellCaption(h,3))
			h := oItems:AddItem("11/02/2010")
			oItems:SetProperty("CellCaption",h,1,"11/02/2010 09:00:00")
			oItems:SetProperty("CellCaption",h,2,oItems:CellCaption(h,1))
			oItems:SetProperty("CellCaption",h,3,2)
			oItems:SetProperty("CellCaption",h,4,oItems:CellCaption(h,3))
		oComboBox:Columns:Item("DateTime"):DisplayFilterDate := .F.
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
485
How can I display a different column, on the control's label (method 2)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oItems

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oComboBox:Style := 2/*DropDownList*/
		oComboBox:SingleEdit := .T.
		oComboBox:LabelColumnIndex := 1
		oComboBox:DrawGridLines := 2/*exVLines*/
		oComboBox:Columns():Add("Column 1"):SetProperty("Def",17/*exCellCaptionFormat*/,1)
		oComboBox:Columns():Add("Column 2"):SetProperty("Def",17/*exCellCaptionFormat*/,1)
		oItems := oComboBox:Items()
			oItems:SetProperty("CellCaption",oItems:AddItem("Item 1 on <b>Column 1"),1,"Item 1 on <b>Column 2")
			oItems:SetProperty("CellCaption",oItems:AddItem("Item 2 on <b>Column 1"),1,"Item 2 on <b>Column 2")
			oItems:SetProperty("CellCaption",oItems:AddItem("Item 3 on <b>Column 1"),1,"Item 3 on <b>Column 2")
			oItems:SetProperty("SelectItem",oItems:FirstVisibleItem(),.T.)
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
484
How can I display a different column, on the control's label (method 1)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oItems

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oComboBox:Style := 2/*DropDownList*/
		oComboBox:SingleEdit := .T.
		oComboBox:SearchColumnIndex := 1
		oComboBox:DrawGridLines := 2/*exVLines*/
		oComboBox:Columns():Add("Column 1"):SetProperty("Def",17/*exCellCaptionFormat*/,1)
		oComboBox:Columns():Add("Column 2"):SetProperty("Def",17/*exCellCaptionFormat*/,1)
		oItems := oComboBox:Items()
			oItems:SetProperty("CellCaption",oItems:AddItem("Item 1 on <b>Column 1"),1,"Item 1 on <b>Column 2")
			oItems:SetProperty("CellCaption",oItems:AddItem("Item 2 on <b>Column 1"),1,"Item 2 on <b>Column 2")
			oItems:SetProperty("CellCaption",oItems:AddItem("Item 3 on <b>Column 1"),1,"Item 3 on <b>Column 2")
			oItems:SetProperty("SelectItem",oItems:FirstVisibleItem(),.T.)
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
483
How do I sort the index column as numeric

PROCEDURE OnInsertItem(oComboBox,Item)
	LOCAL oItems
	oItems := oComboBox:Items()
		oItems:SetProperty("CellData",Item,1,oItems:ItemToIndex(Item))
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oColumn,oColumn1
	LOCAL oItems

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:InsertItem := {|Item| OnInsertItem(oComboBox,Item)} /*Occurs after a new item has been inserted to Items collection.*/

		oComboBox:BeginUpdate()
		oComboBox:DrawGridLines := -1/*exAllLines*/
		oComboBox:ColumnAutoResize := .T.
		oComboBox:ShowFocusRect := .F.
		oComboBox:SingleEdit := .T.
		oColumn := oComboBox:Columns():Add("Next")
			oColumn:SetProperty("Def",48/*exCellPaddingLeft*/,4)
			oColumn:SetProperty("Def",52/*exHeaderPaddingLeft*/,4)
		oColumn1 := oComboBox:Columns():Add("Index")
			oColumn1:AllowSizing := .F.
			oColumn1:Width := 48
			oColumn1:FormatColumn := "(((0 := (1 index ``)) mod 3) case ( default: ``; 0 : `<r><fgcolor=B0B0B0>`; 1: ``; 2 : `<c><fgcolor=808080>` )) + str(=:0)"
			oColumn1:SetProperty("Def",17/*exCellCaptionFormat*/,1)
			oColumn1:SortType := 5/*SortUserData*/
			oColumn1:Position := 0
		oItems := oComboBox:Items()
			oItems:AddItem("Item 1")
			oItems:AddItem("Item 2")
			oItems:AddItem("Item 3")
			oItems:AddItem("Item 4")
			oItems:AddItem("Item 5")
			oItems:AddItem("Item 6")
			oItems:AddItem("Item 7")
			oItems:AddItem("Item 8")
			oItems:AddItem("Item 9")
			oItems:AddItem("Item 10")
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
482
How can I put icons/images into buttons

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oColumn
	LOCAL oItems

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oComboBox:SingleEdit := .T.
		oComboBox:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
		oComboBox:Columns():Add("")
		oColumn := oComboBox:Columns():Add("C+B")
			oColumn:AllowSizing := .F.
			oColumn:Width := 48
			oColumn:FormatColumn := "` <img>` + ( 1 + (1 index ``) mod 3 ) + `</img> `"
			oColumn:SetProperty("Def",17/*exCellCaptionFormat*/,1)
			oColumn:SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
			oColumn:SetProperty("Def",2/*exCellHasButton*/,.T.)
			oColumn:SetProperty("Def",3/*exCellButtonAutoWidth*/,.T.)
			oColumn:Position := 0
		oComboBox:DrawGridLines := 2/*exVLines*/
		oComboBox:DefaultItemHeight := 20
		oItems := oComboBox:Items()
			oItems:AddItem("Item 1")
			oItems:AddItem("Item 2")
			oItems:AddItem("Item 3")
			oItems:AddItem("Item 4")
			oItems:AddItem("Item 5")
			oItems:AddItem("Item 6")
			oItems:AddItem("Item 7")
			oItems:AddItem("Item 8")
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
481
Is it possible to have a CheckBox and Button TOGETHER on all cells in a column

PROCEDURE OnCellButtonClick(oComboBox,Item)
	DevOut( "CellButtonClick" )
	DevOut( Transform(Item,"") )
	DevOut( Transform(oComboBox:Key(),"") )
RETURN

PROCEDURE OnCellStateChanged(oComboBox,Item)
	DevOut( "CellStateChanged" )
	DevOut( Transform(Item,"") )
	DevOut( Transform(oComboBox:Key(),"") )
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oColumn,oColumn1
	LOCAL oItems

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:CellButtonClick := {|Item| OnCellButtonClick(oComboBox,Item)} /*Fired after the user clicks on the cell of button type. */
		oComboBox:CellStateChanged := {|Item| OnCellStateChanged(oComboBox,Item)} /*Fired after cell's state has been changed.*/

		oComboBox:BeginUpdate()
		oComboBox:SingleEdit := .T.
		oColumn := oComboBox:Columns():Add("")
			oColumn:AllowSizing := .F.
			oColumn:Width := 32
			oColumn:FormatColumn := "1 index ``"
		oColumn1 := oComboBox:Columns():Add("Def")
			oColumn1:AllowSizing := .F.
			oColumn1:Width := 48
			oColumn1:FormatColumn := "`     `"
			oColumn1:SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
			oColumn1:SetProperty("Def",2/*exCellHasButton*/,.T.)
			oColumn1:SetProperty("Def",3/*exCellButtonAutoWidth*/,.T.)
		oComboBox:Columns():Add("")
		oItems := oComboBox:Items()
			oItems:AddItem("")
			oItems:AddItem("")
			oItems:AddItem("")
			oItems:AddItem("")
			oItems:AddItem("")
			oItems:AddItem("")
			oItems:AddItem("")
			oItems:AddItem("")
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
480
How can I show only the matching items, while user types in the drop down control

PROCEDURE OnEditChange(oComboBox,ColIndex)
	LOCAL oItems
	LOCAL sLabel
	sLabel := oComboBox:EditText(ColIndex)
	DevOut( "Select the item that maches exactly the typing label: " )
	DevOut( Transform(sLabel,"") )
	oItems := oComboBox:Items()
		oItems:SetProperty("SelectItem",oItems:FocusItem(),.F.)
		oItems:SetProperty("SelectItem",oItems:FindItem(sLabel,ColIndex),.T.)
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oItems

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:EditChange := {|ColIndex| OnEditChange(oComboBox,ColIndex)} /*Fired when the user has taken an action that may have altered text in an edit control.*/

		oComboBox:BeginUpdate()
		oComboBox:SingleEdit := .T.
		oComboBox:AutoComplete := .F.
		oComboBox:AutoSelect := .F.
		oComboBox:AutoSearch := .F.
		oComboBox:AutoDropDown := .T.
		oComboBox:IntegralHeight := .T.
		oComboBox:HeaderVisible := .F.
		oComboBox:Columns():Add("Friends")
		oItems := oComboBox:Items()
			oItems:AddItem("Fred")
			oItems:AddItem("Tina")
			oItems:AddItem("Tom")
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
479
How do I unselect/deselect the item (Simple style)
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oItems,oItems1

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oComboBox:Style := 0/*Simple*/
		oComboBox:Columns():Add("Def")
		oItems := oComboBox:Items()
			oItems:AddItem("Item 1")
			oItems:AddItem("Item 2")
			oItems:AddItem("Item 3")
			oItems:AddItem("Item 3")
		oComboBox:SearchColumnIndex := 0
		oComboBox:Value := "Item 2"
		oItems1 := oComboBox:Items()
			oItems1:SetProperty("SelectItem",oItems1:FocusItem(),.F.)
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
478
How do I unselect/deselect the item (DropDownList style)
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oItems,oItems1

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oComboBox:Style := 1/*DropDown*/
		oComboBox:Columns():Add("Def")
		oItems := oComboBox:Items()
			oItems:AddItem("Item 1")
			oItems:AddItem("Item 2")
			oItems:AddItem("Item 3")
			oItems:AddItem("Item 3")
		oComboBox:SearchColumnIndex := 0
		oComboBox:Value := "Item 2"
		oItems1 := oComboBox:Items()
			oItems1:SetProperty("SelectItem",oItems1:FocusItem(),.F.)
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
477
How do I unselect/deselect the item (DropDown style)
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oItems,oItems1

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oComboBox:Style := 1/*DropDown*/
		oComboBox:Columns():Add("Def")
		oItems := oComboBox:Items()
			oItems:AddItem("Item 1")
			oItems:AddItem("Item 2")
			oItems:AddItem("Item 3")
			oItems:AddItem("Item 3")
		oComboBox:SearchColumnIndex := 0
		oComboBox:Value := "Item 2"
		oItems1 := oComboBox:Items()
			oItems1:SetProperty("SelectItem",oItems1:FocusItem(),.F.)
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
476
Setting the ForeColor to red and then setting Enabled property on False the ForeColor returns back to original color of black/gray. What can be done (Style is Simple)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oColumns
	LOCAL oItems

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oComboBox:Style := 0/*Simple*/
		oComboBox:ColumnAutoResize := .T.
		oColumns := oComboBox:Columns()
			oColumns:Add("C1")
			oColumns:Add("C2")
		oItems := oComboBox:Items()
			oItems:SetProperty("CellCaption",oItems:AddItem("item a"),1,"item b")
			oItems:SetProperty("CellCaption",oItems:AddItem("item c"),1,"item d")
		oComboBox:Value := "item a"
		oComboBox:SetProperty("ForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 128,128,188 } )  , .F. ))
		oComboBox:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oComboBox:SetProperty("HeaderForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 128,128,128 } )  , .F. ))
		oComboBox:SetProperty("SelBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 128,128,128 } )  , .F. ))
		oComboBox:SetProperty("BackColorEdit",AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,0 } )  , .F. ))
		oComboBox:SetProperty("ForeColorEdit",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
		oComboBox:Enabled := .F.
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
475
Setting the ForeColor to red and then setting Enabled property on False the ForeColor returns back to original color of black/gray. What can be done (Style is DropDownList)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oColumns
	LOCAL oItems

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oComboBox:Style := 2/*DropDownList*/
		oComboBox:ColumnAutoResize := .T.
		oColumns := oComboBox:Columns()
			oColumns:Add("C1")
			oColumns:Add("C2")
		oItems := oComboBox:Items()
			oItems:SetProperty("CellCaption",oItems:AddItem("item a"),1,"item b")
			oItems:SetProperty("CellCaption",oItems:AddItem("item c"),1,"item d")
		oComboBox:Value := "item a"
		oComboBox:SetProperty("BackColorEdit",AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,0 } )  , .F. ))
		oComboBox:SetProperty("ForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
		oComboBox:Enabled := .F.
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
474
Setting the ForeColor to red and then setting Enabled property on False the ForeColor returns back to original color of black/gray. What can be done (Style is DropDown)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oColumns
	LOCAL oItems

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oComboBox:Style := 1/*DropDown*/
		oComboBox:ColumnAutoResize := .T.
		oColumns := oComboBox:Columns()
			oColumns:Add("C1")
			oColumns:Add("C2")
		oItems := oComboBox:Items()
			oItems:SetProperty("CellCaption",oItems:AddItem("item a"),1,"item b")
			oItems:SetProperty("CellCaption",oItems:AddItem("item c"),1,"item d")
		oComboBox:Value := "item a"
		oComboBox:SetProperty("ForeColorEdit",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
		oComboBox:SetProperty("BackColorEdit",AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,0 } )  , .F. ))
		oComboBox:Enabled := .F.
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
473
How would you clear the displayed selection for style DropDownList. So if a user selects or searches a value in a style DropDownList, I want to know if I can reset the control back to an empty selection

PROCEDURE OnDropUp(oComboBox)
	oComboBox:Value := ""
RETURN

PROCEDURE OnSelectionChanged(oComboBox)
	DevOut( "You selected: " )
	DevOut( Transform(oComboBox:Value(),"") )
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oItems

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:DropUp := {|| OnDropUp(oComboBox)} /*Occurs when the drop-down portion of the control is hidden.*/
		oComboBox:SelectionChanged := {|| OnSelectionChanged(oComboBox)} /*Fired after a new item has been selected.*/

		oComboBox:BeginUpdate()
		oComboBox:Style := 2/*DropDownList*/
		oComboBox:HeaderVisible := .F.
		oComboBox:AutoSearch := .T.
		oComboBox:AutoDropDown := .T.
		oComboBox:IntegralHeight := .T.
		oComboBox:Columns():Add("Default"):AutoSearch := 1/*exContains*/
		oItems := oComboBox:Items()
			oItems:AddItem("This is a bit of text")
			oItems:AddItem("This is a another text")
			oItems:DefaultItem := oItems:InsertItem(,,"")
			oItems:SetProperty("ItemPosition",0,0)
			oItems:SetProperty("SortableItem",0,.F.)
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
472
I cannot seem to get autosearch=1 (contains) in the column object to search properly. It still only finds items that start with the typed character. I want to it look to see if the typed character(s) are contained in the item. I Can't seem to get this to work

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oItems

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oComboBox:Style := 2/*DropDownList*/
		oComboBox:HeaderVisible := .F.
		oComboBox:AutoSearch := .T.
		oComboBox:AutoDropDown := .T.
		oComboBox:IntegralHeight := .T.
		oComboBox:Columns():Add("Default"):AutoSearch := 1/*exContains*/
		oItems := oComboBox:Items()
			oItems:AddItem("This is a bit of text")
			oItems:AddItem("This is a another text")
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
471
If the user selects an item from the list, how can I clear that selection and return the control to the unselected state with the PROMPT text

PROCEDURE OnDropUp(oComboBox)
	oComboBox:SetProperty("EditText",0,"")
RETURN

PROCEDURE OnSelectionChanged(oComboBox)
	DevOut( "You selected:  " )
	DevOut( Transform(oComboBox:Value(),"") )
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oItems

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:DropUp := {|| OnDropUp(oComboBox)} /*Occurs when the drop-down portion of the control is hidden.*/
		oComboBox:SelectionChanged := {|| OnSelectionChanged(oComboBox)} /*Fired after a new item has been selected.*/

		oComboBox:BeginUpdate()
		oComboBox:LabelHeight := 23
		oComboBox:IntegralHeight := .T.
		oComboBox:AutoComplete := .F.
		oComboBox:AutoSearch := .F.
		oComboBox:AutoDropDown := .T.
		oComboBox:Columns():Add("Default"):Prompt := "<i><fgcolor=808080>type something</fgcolor></i>"
		oItems := oComboBox:Items()
			oItems:AddItem(0)
			oItems:AddItem(1)
			oItems:AddItem(2)
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
470
How do I get notified once the user changes the Filter For field
PROCEDURE OnEditChange(oComboBox,ColIndex)
	DevOut( "ColIndex: " )
	DevOut( Transform(ColIndex,"") )
	DevOut( "Label: " )
	DevOut( oComboBox:EditText(0) )
	DevOut( "FilterFor: " )
	DevOut( oComboBox:EditText(-1) )
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oItems

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:EditChange := {|ColIndex| OnEditChange(oComboBox,ColIndex)} /*Fired when the user has taken an action that may have altered text in an edit control.*/

		oComboBox:BeginUpdate()
		oComboBox:FilterForVisible := .T.
		oComboBox:SetProperty("FilterForBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oComboBox:IntegralHeight := .T.
		oComboBox:Columns():Add("Default")
		oItems := oComboBox:Items()
			oItems:AddItem("Item 1")
			oItems:AddItem("Item 2")
			oItems:AddItem("Item 3")
			oItems:AddItem("Item 4")
			oItems:AddItem("Item 5")
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
469
I am using the ScrollWidth/ScrollHeight property on 0 to hide the control's scroll bars, the question is that the drop down button is disappearing. What can be done so I can still show the drop down button

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oComboBox:LabelHeight := 40
		oComboBox:ScrollWidth := 0
		oComboBox:ScrollHeight := 0
		oComboBox:DropDownButtonWidth := 40
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
468
Does your control supports scrolling by touching the screen

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL rs

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oComboBox:ColumnAutoResize := .F.
		rs := CreateObject("ADOR.Recordset")
			rs:Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExComboBox\Sample\Access\sample.mdb",3/*adOpenStatic*/,3/*adLockOptimistic*/)
		oComboBox:DataSource := rs
		oComboBox:ScrollBySingleLine := .T.
		oComboBox:AutoDrag := 4112/*exAutoDragScrollOnShortTouch+exAutoDragScroll*/
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
467
How can I make bigger/enlarge the control's drop down button

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oComboBox:LabelHeight := 40
		oComboBox:ScrollWidth := 40
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
466
How do I select a NULL/empty value

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oItems

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oComboBox:Style := 2/*DropDownList*/
		oComboBox:Columns():Add("Items")
		oItems := oComboBox:Items()
			oItems:AddItem("Item 1")
			oItems:AddItem("Item 2")
			oItems:AddItem("Item 3")
			oItems:AddItem("Item 4")
			oItems:DefaultItem := oItems:InsertItem(,,"")
			oItems:SetProperty("ItemPosition",0,0)
			oItems:SetProperty("SortableItem",0,.F.)
		oComboBox:Value := ""
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
465
How can I add a vertical padding

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oColumn
	LOCAL oItems

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oComboBox:DrawGridLines := -1/*exAllLines*/
		oColumn := oComboBox:Columns():Add("Padding")
			oColumn:SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
			oColumn:SetProperty("Def",16/*exCellSingleLine*/,.F.)
			oColumn:SetProperty("Def",48/*exCellPaddingLeft*/,6)
			oColumn:SetProperty("Def",49/*exCellPaddingRight*/,6)
			oColumn:SetProperty("Def",50/*exCellPaddingTop*/,6)
			oColumn:SetProperty("Def",51/*exCellPaddingBottom*/,6)
		oItems := oComboBox:Items()
			oItems:AddItem("padding")
			oItems:AddItem("padding")
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
464
How can I add or change the padding (spaces) for captions in the control's header

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oColumn

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oComboBox:Columns():Add("Padding-Left"):SetProperty("Def",52/*exHeaderPaddingLeft*/,18)
		oColumn := oComboBox:Columns():Add("Padding-Right")
			oColumn:SetProperty("Def",53/*exHeaderPaddingRight*/,18)
			oColumn:HeaderAlignment := 2/*RightAlignment*/
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
463
Is it possible to change the height for all items at once

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oItems
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oComboBox:LinesAtRoot := -1/*exLinesAtRoot*/
		oComboBox:Columns():Add("Items")
		oItems := oComboBox:Items()
			h := oItems:AddItem("Root 1")
			oItems:InsertItem(h,,"Child 1")
			oItems:InsertItem(h,,"Child 2")
			h := oItems:AddItem("Root 2")
			oItems:InsertItem(h,,"Child 1")
			oItems:InsertItem(h,,"Child 2")
			oItems:SetProperty("ExpandItem",0,.T.)
		oComboBox:EndUpdate()
		oComboBox:DefaultItemHeight := 12
		oComboBox:Items():SetProperty("ItemHeight",0,12)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
462
How can I have a case-insensitive filter (exFilterDoCaseSensitive flag is not set)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oColumn,oColumn1
	LOCAL oColumns
	LOCAL oItems

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oComboBox:MarkSearchColumn := .F.
		oColumns := oComboBox:Columns()
			oColumn := oColumns:Add("Car")
				oColumn:DisplayFilterButton := .T.
				oColumn:FilterType := 240/*exFilter*/
				oColumn:Filter := "MAZDA"
			oColumn1 := oColumns:Add("Equipment")
				oColumn1:DisplayFilterButton := .T.
				oColumn1:DisplayFilterPattern := .F.
				oColumn1:CustomFilter := "Air Bag||*Air Bag*|||Air condition||*Air condition*|||ABS||*ABS*|||ESP||*ESP*"
				oColumn1:FilterType := 3/*exPattern*/
				oColumn1:Filter := "AIR BAG"
		oItems := oComboBox:Items()
			oItems:SetProperty("CellCaption",oItems:AddItem("Mazda"),1,"Air Bag")
			oItems:SetProperty("CellCaption",oItems:AddItem("Toyota"),1,"Air Bag,Air condition")
			oItems:SetProperty("CellCaption",oItems:AddItem("Ford"),1,"Air condition")
			oItems:SetProperty("CellCaption",oItems:AddItem("Nissan"),1,"Air Bag,ABS,ESP")
			oItems:SetProperty("CellCaption",oItems:AddItem("Mazda"),1,"Air Bag, ABS,ESP")
			oItems:SetProperty("CellCaption",oItems:AddItem("Mazda"),1,"ABS,ESP")
		oComboBox:ApplyFilter()
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
461
How can I have a case-sensitive filter

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oColumn,oColumn1
	LOCAL oColumns
	LOCAL oItems

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oComboBox:MarkSearchColumn := .F.
		oColumns := oComboBox:Columns()
			oColumn := oColumns:Add("Car")
				oColumn:DisplayFilterButton := .T.
				oColumn:FilterType := 496/*exFilterDoCaseSensitive+exFilter*/
				oColumn:Filter := "Mazda"
			oColumn1 := oColumns:Add("Equipment")
				oColumn1:DisplayFilterButton := .T.
				oColumn1:DisplayFilterPattern := .F.
				oColumn1:CustomFilter := "Air Bag||*Air Bag*|||Air condition||*Air condition*|||ABS||*ABS*|||ESP||*ESP*"
				oColumn1:FilterType := 259/*exFilterDoCaseSensitive+exPattern*/
				oColumn1:Filter := "Air Bag"
		oItems := oComboBox:Items()
			oItems:SetProperty("CellCaption",oItems:AddItem("Mazda"),1,"Air Bag")
			oItems:SetProperty("CellCaption",oItems:AddItem("Toyota"),1,"Air Bag,Air condition")
			oItems:SetProperty("CellCaption",oItems:AddItem("Ford"),1,"Air condition")
			oItems:SetProperty("CellCaption",oItems:AddItem("Nissan"),1,"Air Bag,ABS,ESP")
			oItems:SetProperty("CellCaption",oItems:AddItem("Mazda"),1,"Air Bag, ABS,ESP")
			oItems:SetProperty("CellCaption",oItems:AddItem("Mazda"),1,"ABS,ESP")
		oComboBox:ApplyFilter()
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
460
Is it possible to filter the items as I type

PROCEDURE OnEditChange(oComboBox,ColIndex)
	oComboBox:Columns:Item(0):Filter := oComboBox:EditText(0)
	oComboBox:ApplyFilter()
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oColumn
	LOCAL oColumns
	LOCAL oItems

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:EditChange := {|ColIndex| OnEditChange(oComboBox,ColIndex)} /*Fired when the user has taken an action that may have altered text in an edit control.*/

		oComboBox:BeginUpdate()
		oComboBox:MarkSearchColumn := .F.
		oComboBox:SingleEdit := .T.
		oComboBox:AutoComplete := .F.
		oComboBox:AutoDropDown := .T.
		oComboBox:IntegralHeight := .T.
		oColumns := oComboBox:Columns()
			oColumn := oColumns:Add("Items")
				oColumn:Prompt := "<i><fgcolor=808080>Start Filter</fgcolor></i>"
				oColumn:FilterType := 3/*exPattern*/
		oItems := oComboBox:Items()
			oItems:AddItem("A")
			oItems:AddItem("B")
			oItems:AddItem("C")
			oItems:AddItem("AB")
			oItems:AddItem("AC")
			oItems:AddItem("BA")
			oItems:AddItem("BC")
			oItems:AddItem("CC")
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
459
What is the equivalent to combo1.text=combo1.list(index) to select a row in the combo

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oItems

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:Columns():Add("Default")
		oItems := oComboBox:Items()
			oItems:AddItem("A")
			oItems:AddItem("B")
			oItems:AddItem("C")
			oItems:AddItem("D")
		oComboBox:SetProperty("EditText",0,"C")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
458
What is the equivalent to combo1.text=combo1.list(index) to select a row in the combo

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oItems

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:Columns():Add("Default")
		oItems := oComboBox:Items()
			oItems:AddItem("A")
			oItems:AddItem("B")
			oItems:AddItem("C")
			oItems:AddItem("D")
		oComboBox:SetProperty("EditText",0,Transform(oComboBox:Items():CellCaption(oComboBox:Items():ItemByIndex(2),0),""))

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
457
What is the equivalent to combo1.text=combo1.list(index) to select a row in the combo

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oItems

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:Columns():Add("Default")
		oItems := oComboBox:Items()
			oItems:AddItem("A")
			oItems:AddItem("B")
			oItems:AddItem("C")
			oItems:AddItem("D")
		oComboBox:SetProperty("Select",0,oComboBox:Items():CellCaption(oComboBox:Items():ItemByIndex(2),0))

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
456
What is the equivalent to combo1.text=combo1.list(index) to select a row in the combo

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oItems

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:Columns():Add("Default")
		oItems := oComboBox:Items()
			oItems:AddItem("A")
			oItems:AddItem("B")
			oItems:AddItem("C")
			oItems:AddItem("D")
		oComboBox:SetProperty("Select",0,"C")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
455
How can I change the color, font, bold etc for the items/cells in the same column or for the entire column

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oColumn
	LOCAL oConditionalFormat
	LOCAL oItems

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oComboBox:MarkSearchColumn := .F.
		oConditionalFormat := oComboBox:ConditionalFormats():Add("1")
			oConditionalFormat:Bold := .T.
			oConditionalFormat:SetProperty("ForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
			oConditionalFormat:ApplyTo := 1/*0x1+*/
		oComboBox:Columns():Add("C1")
		oColumn := oComboBox:Columns():Add("C2")
			oColumn:HeaderBold := .T.
			oColumn:HTMLCaption := "<fgcolor=FF0000>C2"
		oItems := oComboBox:Items()
			oItems:SetProperty("CellCaption",oItems:AddItem(10),1,11)
			oItems:SetProperty("CellCaption",oItems:AddItem(12),1,13)
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
454
How can I add a horizontal scroll bar

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oColumn
	LOCAL oItems

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oComboBox:ScrollBySingleLine := .T.
		oComboBox:ColumnAutoResize := .F.
		oComboBox:SetProperty("BackColorAlternate",AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oColumn := oComboBox:Columns():Add("Default")
			oColumn:Width := 512
			oColumn:SetProperty("Def",16/*exCellSingleLine*/,.F.)
		oItems := oComboBox:Items()
			oItems:AddItem("Exontrol is devoted to create innovative user interface components for Windows applications, on COM or .NET platforms, since 1999. " + CHR(34) + "eXontrol" + CHR(34) + " comes from e(s)pecial (c)ontrol, where sc makes the X. We are a vendor not a reseller, and this is the single site where you can try or buy our products. If you are tired of looking for " + CHR(34) + "powerful" + CHR(34) + " components now it's time to show you real components. No registration required, no nag screens, no limitations, unli" +;
		"mited evaluation time.")
			oItems:AddItem("A combo box is a commonly-used GUI tool. It is a combination of a drop-down list or list box and a single-line textbox, allowing the user either to type a value directly into the control or choose from the list of existing options.")
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
453
Does the control have the option to have a horizontal scroll to show entries which are longer than the display

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oItems

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oComboBox:ColumnAutoResize := .F.
		oComboBox:Columns():Add("Default"):Width := 512
		oItems := oComboBox:Items()
			oItems:AddItem("Exontrol is devoted to create innovative user interface components for Windows applications, on COM or .NET platforms, since 1999. " + CHR(34) + "eXontrol" + CHR(34) + " comes from e(s)pecial (c)ontrol, where sc makes the X. We are a vendor not a reseller, and this is the single site where you can try or buy our products. If you are tired of looking for " + CHR(34) + "powerful" + CHR(34) + " components now it's time to show you real components. No registration required, no nag screens, no limitations, unli" +;
		"mited evaluation time.")
			oItems:AddItem("A combo box is a commonly-used GUI tool. It is a combination of a drop-down list or list box and a single-line textbox, allowing the user either to type a value directly into the control or choose from the list of existing options.")
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
452
Is it possible to auto-numbering the children items but still keeps the position after filtering

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oColumn,oColumn1,oColumn2,oColumn3,oColumn4,oColumn5,oColumn6
	LOCAL oItems
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oComboBox:LinesAtRoot := -1/*exLinesAtRoot*/
		oColumn := oComboBox:Columns():Add("Items")
			oColumn:DisplayFilterButton := .T.
			oColumn:FilterType := 240/*exFilter*/
			oColumn:Filter := "Child 2"
		oColumn1 := oComboBox:Columns():Add("Pos.1")
			oColumn1:FormatColumn := "1 ropos ''"
			oColumn1:Position := 0
			oColumn1:Width := 32
			oColumn1:AllowSizing := .F.
		oColumn2 := oComboBox:Columns():Add("Pos.2")
			oColumn2:FormatColumn := "1 ropos ':'"
			oColumn2:Position := 1
			oColumn2:Width := 32
			oColumn2:AllowSizing := .F.
		oColumn3 := oComboBox:Columns():Add("Pos.3")
			oColumn3:FormatColumn := "1 ropos ':|A-Z'"
			oColumn3:Position := 2
			oColumn3:Width := 32
			oColumn3:AllowSizing := .F.
		oColumn4 := oComboBox:Columns():Add("Pos.4")
			oColumn4:FormatColumn := "1 ropos '|A-Z|'"
			oColumn4:Position := 3
			oColumn4:Width := 32
			oColumn4:AllowSizing := .F.
		oColumn5 := oComboBox:Columns():Add("Pos.5")
			oColumn5:FormatColumn := "'<font Tahoma;7>' + 1 ropos '-<b>||A-Z'"
			oColumn5:SetProperty("Def",17/*exCellCaptionFormat*/,1)
			oColumn5:Position := 4
			oColumn5:Width := 32
			oColumn5:AllowSizing := .F.
		oColumn6 := oComboBox:Columns():Add("Pos.6")
			oColumn6:FormatColumn := "'<b>'+ 1 ropos '</b>:<fgcolor=FF0000>|A-Z|'"
			oColumn6:SetProperty("Def",17/*exCellCaptionFormat*/,1)
			oColumn6:Position := 5
			oColumn6:Width := 48
			oColumn6:AllowSizing := .F.
		oItems := oComboBox:Items()
			h := oItems:AddItem("Root 1")
			oItems:InsertItem(h,,"Child 1")
			oItems:InsertItem(h,,"Child 2")
			oItems:SetProperty("ExpandItem",h,.T.)
			h := oItems:AddItem("Root 2")
			oItems:InsertItem(h,,"Child 1")
			oItems:InsertItem(h,,"Child 2")
		oComboBox:ApplyFilter()
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
451
How do I prevent scrolling the control's data after user does the sort

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oItems

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:EnsureOnSort := .F.
		oComboBox:Columns():Add("Column")
		oItems := oComboBox:Items()
			oItems:AddItem("Item 3")
			oItems:AddItem("Item 1")
			oItems:AddItem("Item 2")
		oComboBox:PutItems(oComboBox:GetItems(0))
		oComboBox:PutItems(oComboBox:GetItems(0))
		oComboBox:PutItems(oComboBox:GetItems(0))
		oComboBox:Columns:Item(0):SortOrder := 1/*SortAscending*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
450
Is it possible to auto-numbering the children items too

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oColumn,oColumn1,oColumn2,oColumn3,oColumn4,oColumn5
	LOCAL oItems
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oComboBox:LinesAtRoot := -1/*exLinesAtRoot*/
		oComboBox:Columns():Add("Items")
		oColumn := oComboBox:Columns():Add("Pos.1")
			oColumn:FormatColumn := "1 rpos ''"
			oColumn:Position := 0
			oColumn:Width := 32
			oColumn:AllowSizing := .F.
		oColumn1 := oComboBox:Columns():Add("Pos.2")
			oColumn1:FormatColumn := "1 rpos ':'"
			oColumn1:Position := 1
			oColumn1:Width := 32
			oColumn1:AllowSizing := .F.
		oColumn2 := oComboBox:Columns():Add("Pos.3")
			oColumn2:FormatColumn := "1 rpos ':|A-Z'"
			oColumn2:Position := 2
			oColumn2:Width := 32
			oColumn2:AllowSizing := .F.
		oColumn3 := oComboBox:Columns():Add("Pos.4")
			oColumn3:FormatColumn := "1 rpos '|A-Z|'"
			oColumn3:Position := 3
			oColumn3:Width := 32
			oColumn3:AllowSizing := .F.
		oColumn4 := oComboBox:Columns():Add("Pos.5")
			oColumn4:FormatColumn := "'<font Tahoma;7>' + 1 rpos '-<b>||A-Z'"
			oColumn4:SetProperty("Def",17/*exCellCaptionFormat*/,1)
			oColumn4:Position := 4
			oColumn4:Width := 32
			oColumn4:AllowSizing := .F.
		oColumn5 := oComboBox:Columns():Add("Pos.6")
			oColumn5:FormatColumn := "'<b>'+ 1 rpos '</b>:<fgcolor=FF0000>|A-Z|'"
			oColumn5:SetProperty("Def",17/*exCellCaptionFormat*/,1)
			oColumn5:Position := 5
			oColumn5:Width := 48
			oColumn5:AllowSizing := .F.
		oItems := oComboBox:Items()
			h := oItems:AddItem("Root 1")
			oItems:InsertItem(h,,"Child 1")
			oItems:InsertItem(h,,"Child 2")
			oItems:SetProperty("ExpandItem",h,.T.)
			h := oItems:AddItem("Root 2")
			oItems:InsertItem(h,,"Child 1")
			oItems:InsertItem(h,,"Child 2")
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
449
How can I show the child items with no identation

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oItems
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:LinesAtRoot := 5/*exGroupLinesOutside*/
		oComboBox:Indent := 12
		oComboBox:HasLines := 2/*exThinLine*/
		oComboBox:Columns():Add("Default")
		oItems := oComboBox:Items()
			h := oItems:AddItem("Root 1")
			oItems:InsertItem(h,,"Child 1")
			oItems:InsertItem(h,,"Child 2")
			oItems:InsertItem(h,,"Child 3")
			oItems:SetProperty("ExpandItem",h,.T.)
			h := oItems:AddItem("Root 2")
			oItems:InsertItem(h,,"Child 1")
			oItems:InsertItem(h,,"Child 2")
			oItems:InsertItem(h,,"Child 3")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
448
Is there other ways of showing the hierarchy lines (exGroupLinesAtRoot)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oItems
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:LinesAtRoot := 1/*exGroupLinesAtRoot*/
		oComboBox:Indent := 12
		oComboBox:Columns():Add("Default")
		oItems := oComboBox:Items()
			h := oItems:AddItem("Root")
			oItems:InsertItem(h,,"Child 1")
			oItems:InsertItem(h,,"Child 2")
			oItems:InsertItem(h,,"Child 3")
			oItems:SetProperty("ExpandItem",h,.T.)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
447
Is there other ways of showing the hierarchy lines (exGroupLinesOutside)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oItems
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:LinesAtRoot := 5/*exGroupLinesOutside*/
		oComboBox:Indent := 12
		oComboBox:Columns():Add("Default")
		oItems := oComboBox:Items()
			h := oItems:AddItem("Root 1")
			oItems:InsertItem(h,,"Child 1")
			oItems:InsertItem(h,,"Child 2")
			oItems:InsertItem(h,,"Child 3")
			oItems:SetProperty("ExpandItem",h,.T.)
			h := oItems:AddItem("Root 2")
			oItems:InsertItem(h,,"Child 1")
			oItems:InsertItem(h,,"Child 2")
			oItems:InsertItem(h,,"Child 3")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
446
Is there other ways of showing the hierarchy lines (exGroupLinesInsideLeaf)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oItems
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:LinesAtRoot := 4/*exGroupLinesInsideLeaf*/
		oComboBox:Indent := 12
		oComboBox:Columns():Add("Default")
		oItems := oComboBox:Items()
			h := oItems:AddItem("Root")
			oItems:InsertItem(h,,"Child 1")
			oItems:InsertItem(h,,"Child 2")
			oItems:InsertItem(h,,"Child 3")
			oItems:SetProperty("ExpandItem",h,.T.)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
445
Is there other ways of showing the hierarchy lines (exGroupLinesInside)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oItems
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:LinesAtRoot := 3/*exGroupLinesInside*/
		oComboBox:Indent := 12
		oComboBox:Columns():Add("Default")
		oItems := oComboBox:Items()
			h := oItems:AddItem("Root")
			oItems:InsertItem(h,,"Child 1")
			oItems:InsertItem(h,,"Child 2")
			oItems:InsertItem(h,,"Child 3")
			oItems:SetProperty("ExpandItem",h,.T.)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
444
Is there other ways of showing the hierarchy lines (exGroupLines)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oItems
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:LinesAtRoot := 2/*exGroupLines*/
		oComboBox:Indent := 12
		oComboBox:Columns():Add("Default")
		oItems := oComboBox:Items()
			h := oItems:AddItem("Root")
			oItems:InsertItem(h,,"Child 1")
			oItems:InsertItem(oItems:InsertItem(h,,"Child 2"),,"SubChild 2")
			oItems:InsertItem(h,,"Child 3")
			oItems:SetProperty("ExpandItem",h,.T.)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
443
Is it possible display numbers in the same format no matter of regional settings in the control panel

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oItems
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oComboBox:Columns():Add("Def"):SetProperty("Def",17/*exCellCaptionFormat*/,1)
		oItems := oComboBox:Items()
			h := oItems:AddItem(100000.27)
			oItems:SetProperty("FormatCell",h,0,"(value format '') +  ' <fgcolor=808080>(default positive)'")
			h := oItems:AddItem(100000.27)
			oItems:SetProperty("FormatCell",h,0,"(value format '2|.|3|,|1|1')")
			h := oItems:AddItem(-100000.27)
			oItems:SetProperty("FormatCell",h,0,"(value format '') +  ' <fgcolor=808080>(default negative)'")
			h := oItems:AddItem(-100000.27)
			oItems:SetProperty("FormatCell",h,0,"(value format '2|.|3|,|1|1')")
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
442
Is it possible to add a 0 for numbers less than 1 instead .7 to show 0.8

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oItems
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oComboBox:Columns():Add("Def"):SetProperty("Def",17/*exCellCaptionFormat*/,1)
		oItems := oComboBox:Items()
			h := oItems:AddItem(0.27)
			oItems:SetProperty("FormatCell",h,0,"(value format '') +  ' <fgcolor=808080>(default)'")
			h := oItems:AddItem(0.27)
			oItems:SetProperty("FormatCell",h,0,"(value format '|||||0') +  ' <fgcolor=808080>(Display no leading zeros)'")
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
441
How can I specify the format for negative numbers

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oItems
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oComboBox:Columns():Add("Def"):SetProperty("Def",17/*exCellCaptionFormat*/,1)
		oItems := oComboBox:Items()
			h := oItems:AddItem(-100000.27)
			oItems:SetProperty("FormatCell",h,0,"(value format '') +  ' <fgcolor=808080>(default)'")
			h := oItems:AddItem(-100000.27)
			oItems:SetProperty("FormatCell",h,0,"(value format '||||1') +  ' <fgcolor=808080>(Negative sign, number; for example, -1.1)'")
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
440
Is it possible to change the grouping character when display numbers

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oItems
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oComboBox:Columns():Add("Def"):SetProperty("Def",17/*exCellCaptionFormat*/,1)
		oItems := oComboBox:Items()
			h := oItems:AddItem(100000.27)
			oItems:SetProperty("FormatCell",h,0,"(value format '') +  ' <fgcolor=808080>(default)'")
			h := oItems:AddItem(100000.27)
			oItems:SetProperty("FormatCell",h,0,"(value format '|||-') +  ' <fgcolor=808080>(grouping character is -)'")
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
439
How can I display numbers with 2 digits in each group

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oItems
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oComboBox:Columns():Add("Def"):SetProperty("Def",17/*exCellCaptionFormat*/,1)
		oItems := oComboBox:Items()
			h := oItems:AddItem(100000.27)
			oItems:SetProperty("FormatCell",h,0,"(value format '') +  ' <fgcolor=808080>(default)'")
			h := oItems:AddItem(100000.27)
			oItems:SetProperty("FormatCell",h,0,"(value format '||2') +  ' <fgcolor=808080>(grouping by 2 digits)'")
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
438
How can I display my numbers using a different decimal separator

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oItems
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oComboBox:Columns():Add("Def"):SetProperty("Def",17/*exCellCaptionFormat*/,1)
		oItems := oComboBox:Items()
			h := oItems:AddItem(100.27)
			oItems:SetProperty("FormatCell",h,0,"(value format '') +  ' <fgcolor=808080>(default)'")
			h := oItems:AddItem(100.27)
			oItems:SetProperty("FormatCell",h,0,"(value format '|;') +  ' <fgcolor=808080>(decimal separator is <b>;</b>)'")
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
437
Is it possible to display the numbers using 3 (three) digits

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oItems
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oComboBox:Columns():Add("Def"):SetProperty("Def",17/*exCellCaptionFormat*/,1)
		oItems := oComboBox:Items()
			h := oItems:AddItem(100.27)
			oItems:SetProperty("FormatCell",h,0,"(value format '') +  ' <fgcolor=808080>(default)'")
			h := oItems:AddItem(100.27)
			oItems:SetProperty("FormatCell",h,0,"(value format '3') +  ' <fgcolor=808080>(3 digits)'")
			h := oItems:AddItem(100.27)
			oItems:SetProperty("FormatCell",h,0,"(value format 2) +  '  <fgcolor=808080>(2 digits)'")
			h := oItems:AddItem(100.27)
			oItems:SetProperty("FormatCell",h,0,"(value format 1) +  ' <fgcolor=808080>(1 digit)'")
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
436
Is it possible to format numbers

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oColumn,oColumn1,oColumn2,oColumn3
	LOCAL oColumns
	LOCAL oItems
	LOCAL h,h1

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oComboBox:MarkSearchColumn := .F.
		oColumns := oComboBox:Columns()
			oColumns:Add("Name")
			oColumn := oColumns:Add("A")
				oColumn:SortType := 1/*SortNumeric*/
				oColumn:AllowSizing := .F.
				oColumn:Width := 36
				oColumn:FormatColumn := "len(value) ? value + ' +'"
			oColumn1 := oColumns:Add("B")
				oColumn1:SortType := 1/*SortNumeric*/
				oColumn1:AllowSizing := .F.
				oColumn1:Width := 36
				oColumn1:FormatColumn := "len(value) ? value + ' +'"
			oColumn2 := oColumns:Add("C")
				oColumn2:SortType := 1/*SortNumeric*/
				oColumn2:AllowSizing := .F.
				oColumn2:Width := 36
				oColumn2:FormatColumn := "len(value) ? value + ' ='"
			oColumn3 := oColumns:Add("A+B+C")
				oColumn3:SortType := 1/*SortNumeric*/
				oColumn3:Width := 64
				oColumn3:ComputedField := "dbl(%1)+dbl(%2)+dbl(%3)"
				oColumn3:FormatColumn := "type(value) in (0,1) ? 'null' : ( dbl(value)<0 ? '<fgcolor=FF0000>'+ (value format '2|.|3|,|1' ) : (dbl(value)>0 ? '<fgcolor=0000FF>+'+(value format '2|.|3|,' ): '0.00') )"
				oColumn3:SetProperty("Def",17/*exCellCaptionFormat*/,1)
		oItems := oComboBox:Items()
			h := oItems:AddItem("Root")
			oItems:SetProperty("CellCaptionFormat",h,4,2/*exComputedField*/)
			h1 := oItems:InsertItem(h,,"Child 1")
			oItems:SetProperty("CellCaption",h1,1,7)
			oItems:SetProperty("CellCaption",h1,2,3)
			oItems:SetProperty("CellCaption",h1,3,1)
			h1 := oItems:InsertItem(h,,"Child 2")
			oItems:SetProperty("CellCaption",h1,1,-2)
			oItems:SetProperty("CellCaption",h1,2,-2)
			oItems:SetProperty("CellCaption",h1,3,-4)
			h1 := oItems:InsertItem(h,,"Child 3")
			oItems:SetProperty("CellCaption",h1,1,2)
			oItems:SetProperty("CellCaption",h1,2,2)
			oItems:SetProperty("CellCaption",h1,3,-4)
			oItems:SetProperty("ExpandItem",h,.T.)
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
435
Is it possible to limit the height of the item while resizing

PROCEDURE OnInsertItem(oComboBox,Item)
	oComboBox:Items():SetProperty("ItemMinHeight",Item,18)
	oComboBox:Items():SetProperty("ItemMaxHeight",Item,72)
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oItems

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:InsertItem := {|Item| OnInsertItem(oComboBox,Item)} /*Occurs after a new item has been inserted to Items collection.*/

		oComboBox:BeginUpdate()
		oComboBox:ItemsAllowSizing := -1/*exResizeItem*/
		oComboBox:ScrollBySingleLine := .F.
		oComboBox:SetProperty("BackColorAlternate",AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oComboBox:Columns():Add("Names")
		oItems := oComboBox:Items()
			oItems:AddItem("Mantel")
			oItems:AddItem("Mechanik")
			oItems:AddItem("Motor")
			oItems:AddItem("Murks")
			oItems:AddItem("Märchen")
			oItems:AddItem("Möhren")
			oItems:AddItem("Mühle")
		oComboBox:Columns:Item(0):SortOrder := 1/*SortAscending*/
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
434
How can I simulate displaying groups

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oColumns
	LOCAL oItems
	LOCAL h,h1

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:HasLines := 0/*exNoLine*/
		oComboBox:ScrollBySingleLine := .T.
		oColumns := oComboBox:Columns()
			oColumns:Add("Name")
			oColumns:Add("A")
			oColumns:Add("B")
			oColumns:Add("C")
		oItems := oComboBox:Items()
			h := oItems:AddItem("Group 1")
			oItems:SetProperty("CellHAlignment",h,0,1/*CenterAlignment*/)
			oItems:SetProperty("ItemDivider",h,0)
			oItems:SetProperty("ItemDividerLineAlignment",h,3/*DividerBoth*/)
			oItems:SetProperty("ItemHeight",h,24)
			oItems:SetProperty("SortableItem",h,.F.)
			h1 := oItems:InsertItem(h,,"Child 1")
			oItems:SetProperty("CellCaption",h1,1,1)
			oItems:SetProperty("CellCaption",h1,2,2)
			oItems:SetProperty("CellCaption",h1,3,3)
			h1 := oItems:InsertItem(h,,"Child 2")
			oItems:SetProperty("CellCaption",h1,1,4)
			oItems:SetProperty("CellCaption",h1,2,5)
			oItems:SetProperty("CellCaption",h1,3,6)
			oItems:SetProperty("ExpandItem",h,.T.)
			h := oItems:AddItem("Group 2")
			oItems:SetProperty("CellHAlignment",h,0,1/*CenterAlignment*/)
			oItems:SetProperty("ItemDivider",h,0)
			oItems:SetProperty("ItemDividerLineAlignment",h,3/*DividerBoth*/)
			oItems:SetProperty("ItemHeight",h,24)
			oItems:SetProperty("SortableItem",h,.F.)
			h1 := oItems:InsertItem(h,,"Child 1")
			oItems:SetProperty("CellCaption",h1,1,1)
			oItems:SetProperty("CellCaption",h1,2,2)
			oItems:SetProperty("CellCaption",h1,3,3)
			h1 := oItems:InsertItem(h,,"Child 2")
			oItems:SetProperty("CellCaption",h1,1,4)
			oItems:SetProperty("CellCaption",h1,2,5)
			oItems:SetProperty("CellCaption",h1,3,6)
			oItems:SetProperty("ExpandItem",h,.T.)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
433
How can I specify an item to be always the first item

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oItems
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oComboBox:TreeColumnIndex := -1
		oComboBox:Columns():Add("Numbers"):SortType := 1/*SortNumeric*/
		oItems := oComboBox:Items()
			oItems:AddItem(1)
			oItems:AddItem(2)
			oItems:AddItem(3)
			oItems:AddItem(4)
			h := oItems:AddItem("first")
			oItems:SetProperty("ItemPosition",h,0)
			oItems:SetProperty("CellHAlignment",h,0,2/*RightAlignment*/)
			oItems:SetProperty("SortableItem",h,.F.)
			oItems:SortChildren(0,0,.F.)
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
432
How can I specify an item to be always the last item

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oItems
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oComboBox:TreeColumnIndex := -1
		oComboBox:Columns():Add("Numbers"):SortType := 1/*SortNumeric*/
		oItems := oComboBox:Items()
			oItems:AddItem(1)
			oItems:AddItem(2)
			oItems:AddItem(3)
			oItems:AddItem(4)
			h := oItems:AddItem("last")
			oItems:SetProperty("CellHAlignment",h,0,2/*RightAlignment*/)
			oItems:SetProperty("SortableItem",h,.F.)
			oItems:SortChildren(0,0,.T.)
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
431
Can I allow sorting only the child items

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oItems
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oComboBox:Columns():Add("Childs")
		oItems := oComboBox:Items()
			h := oItems:AddItem("Root 1")
			oItems:SetProperty("SortableItem",h,.F.)
			oItems:InsertItem(h,,"Child 1")
			oItems:InsertItem(h,,"Child 2")
			oItems:SetProperty("ExpandItem",h,.T.)
			h := oItems:AddItem("Root 2")
			oItems:SetProperty("SortableItem",h,.F.)
			oItems:InsertItem(h,,"Child 1")
			oItems:InsertItem(h,,"Child 2")
			oItems:SetProperty("ExpandItem",h,.T.)
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
430
Can I specify a terminal item so it will mark the end of childs

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oItems
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oComboBox:ScrollBySingleLine := .T.
		oComboBox:Columns():Add("P1")
		oItems := oComboBox:Items()
			h := oItems:AddItem("Root 1")
			oItems:InsertItem(h,,"Child 1")
			oItems:InsertItem(h,,"Child 2")
			oItems:SetProperty("ExpandItem",h,.T.)
			h := oItems:InsertItem(h,"","")
			oItems:SetProperty("ItemDivider",h,0)
			oItems:SetProperty("ItemDividerLineAlignment",h,1/*DividerCenter*/)
			oItems:SetProperty("ItemHeight",h,2)
			oItems:SetProperty("SelectableItem",h,.F.)
			oItems:SetProperty("SortableItem",h,.F.)
			h := oItems:AddItem("Root 2")
			oItems:InsertItem(h,,"Child 1")
			oItems:InsertItem(h,,"Child 2")
			oItems:SetProperty("ExpandItem",h,.T.)
			h := oItems:InsertItem(h,"","")
			oItems:SetProperty("ItemDivider",h,0)
			oItems:SetProperty("ItemDividerLineAlignment",h,1/*DividerCenter*/)
			oItems:SetProperty("ItemHeight",h,2)
			oItems:SetProperty("SelectableItem",h,.F.)
			oItems:SetProperty("SortableItem",h,.F.)
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
429
Is it possible to specify an item being unsortable so its position won't be changed after sorting

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oItems
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oComboBox:TreeColumnIndex := -1
		oComboBox:Columns():Add("Numbers"):SortType := 1/*SortNumeric*/
		oItems := oComboBox:Items()
			oItems:AddItem(1)
			oItems:AddItem(2)
			oItems:AddItem(3)
			oItems:AddItem(4)
			h := oItems:AddItem("top 3")
			oItems:SetProperty("ItemPosition",h,3)
			oItems:SetProperty("CellHAlignment",h,0,2/*RightAlignment*/)
			oItems:SetProperty("SortableItem",h,.F.)
			oItems:SortChildren(0,0,.F.)
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
428
Can I specify an item to be a separator

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oItems
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oComboBox:TreeColumnIndex := -1
		oComboBox:SortOnClick := 0/*exNoSort*/
		oComboBox:Columns():Add("Numbers")
		oItems := oComboBox:Items()
			oItems:AddItem(1)
			oItems:AddItem(2)
			h := oItems:AddItem("separator")
			oItems:SetProperty("SelectableItem",h,.F.)
			oItems:SetProperty("ItemDivider",h,0)
			oItems:SetProperty("ItemDividerLineAlignment",h,1/*DividerCenter*/)
			oItems:SetProperty("ItemDividerLine",h,5/*ThinLine*/)
			oItems:SetProperty("CellHAlignment",h,0,1/*CenterAlignment*/)
			oItems:AddItem(3)
			oItems:AddItem(4)
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
427
How can I collapse all items

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oItems
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oComboBox:LinesAtRoot := -1/*exLinesAtRoot*/
		oComboBox:Columns():Add("Items")
		oItems := oComboBox:Items()
			h := oItems:AddItem("Root 1")
			oItems:InsertItem(h,,"Child 1")
			oItems:InsertItem(h,,"Child 2")
			h := oItems:AddItem("Root 2")
			oItems:InsertItem(h,,"Child 1")
			oItems:InsertItem(h,,"Child 2")
			oItems:SetProperty("ExpandItem",0,.F.)
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
426
How can I expand all items

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oItems
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oComboBox:LinesAtRoot := -1/*exLinesAtRoot*/
		oComboBox:Columns():Add("Items")
		oItems := oComboBox:Items()
			h := oItems:AddItem("Root 1")
			oItems:InsertItem(h,,"Child 1")
			oItems:InsertItem(h,,"Child 2")
			h := oItems:AddItem("Root 2")
			oItems:InsertItem(h,,"Child 1")
			oItems:InsertItem(h,,"Child 2")
			oItems:SetProperty("ExpandItem",0,.T.)
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
425
Is it possible to specify the cell's value but still want to display some formatted text instead the value

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oItems
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oComboBox:MarkSearchColumn := .F.
		oComboBox:Columns():Add("Value")
		oComboBox:Columns():Add("FormatCell")
		oItems := oComboBox:Items()
			h := oItems:AddItem(1)
			oItems:SetProperty("CellCaption",h,1,12)
			oItems:SetProperty("FormatCell",h,1,"currency(value)")
			h := oItems:AddItem("01/01/2001")
			oItems:SetProperty("CellCaption",h,1,"01/01/2001")
			oItems:SetProperty("CellCaptionFormat",h,1,1/*exHTML*/)
			oItems:SetProperty("FormatCell",h,1,"longdate(value) replace '2001' with '<b>2001</b>'")
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
424
How can I change the foreground color for a particular column

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oColumns

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oColumns := oComboBox:Columns()
			oColumns:Add("Column 1")
			oColumns:Add("Column 2"):SetProperty("Def",8/*exHeaderForeColor*/,8439039)
			oColumns:Add("Column 3")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
423
How can I change the background color for a particular column

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oColumns

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oColumns := oComboBox:Columns()
			oColumns:Add("Column 1")
			oColumns:Add("Column 2"):SetProperty("Def",7/*exHeaderBackColor*/,8439039)
			oColumns:Add("Column 3")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
422
How can I display the column using currency format and enlarge the font for certain values

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oColumn
	LOCAL oItems

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oColumn := oComboBox:Columns():Add("Currency")
			oColumn:SetProperty("Def",17/*exCellCaptionFormat*/,1)
			oColumn:FormatColumn := "len(value) ? ((0:=dbl(value)) < 10 ? '<fgcolor=808080><font ;7>' : '<b>') + currency(=:0)"
		oItems := oComboBox:Items()
			oItems:AddItem("1.23")
			oItems:AddItem("2.34")
			oItems:AddItem("9.94")
			oItems:AddItem("11.94")
			oItems:AddItem("1000")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
421
How can I highlight only parts of the cells

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oColumn
	LOCAL oItems
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oColumn := oComboBox:Columns():Add("")
			oColumn:SetProperty("Def",17/*exCellCaptionFormat*/,1)
			oColumn:FormatColumn := "value replace 'hil' with '<fgcolor=FF0000><b>hil</b></fgcolor>'"
		oItems := oComboBox:Items()
			h := oItems:AddItem("Root")
			oItems:InsertItem(h,,"Child 1")
			oItems:InsertItem(h,,"Child 2")
			oItems:InsertItem(h,,"Child 3")
			oItems:SetProperty("ExpandItem",h,.T.)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
420
How can I get the number of occurrences of a specified string in the cell

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oColumn
	LOCAL oItems
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:Columns():Add("")
		oColumn := oComboBox:Columns():Add("occurrences")
			oColumn:ComputedField := "lower(%0) count 'o'"
			oColumn:FormatColumn := "'contains ' + value + ' of \'o\' chars'"
		oItems := oComboBox:Items()
			h := oItems:AddItem("Root")
			oItems:InsertItem(h,,"Child 1 oooof the root")
			oItems:InsertItem(h,,"Child 2")
			oItems:InsertItem(h,,"Child 3")
			oItems:SetProperty("ExpandItem",h,.T.)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
419
How can I display dates in my format

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oColumn
	LOCAL oItems

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oColumn := oComboBox:Columns():Add("Date")
			oColumn:SetProperty("Def",17/*exCellCaptionFormat*/,1)
			oColumn:FormatColumn := "'<b>' + year(0:=date(value)) + '</b><fgcolor=808080><font ;6> (' + month(=:0) + ' - ' + day(=:0) +')'"
		oItems := oComboBox:Items()
			oItems:AddItem("01/21/2001")
			oItems:AddItem("02/22/2002")
			oItems:AddItem("03/13/2003")
			oItems:AddItem("04/24/2004")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
418
How can I display dates in short format

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oItems

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:Columns():Add("Date"):FormatColumn := "shortdate(value)"
		oItems := oComboBox:Items()
			oItems:AddItem("01/01/2001")
			oItems:AddItem("02/02/2002")
			oItems:AddItem("03/03/2003")
			oItems:AddItem("04/04/2004")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
417
How can I display dates in long format

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oItems

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:Columns():Add("Date"):FormatColumn := "longdate(value)"
		oItems := oComboBox:Items()
			oItems:AddItem("01/01/2001")
			oItems:AddItem("02/02/2002")
			oItems:AddItem("03/03/2003")
			oItems:AddItem("04/04/2004")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
416
How can I display only the right part of the cell

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oColumn
	LOCAL oItems
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:Columns():Add("")
		oColumn := oComboBox:Columns():Add("Right")
			oColumn:ComputedField := "%0 right 2"
			oColumn:FormatColumn := "'" + CHR(34) + "' + value + '" + CHR(34) + "'"
		oItems := oComboBox:Items()
			h := oItems:AddItem("Root")
			oItems:InsertItem(h,,"Child 1")
			oItems:InsertItem(h,,"Child 2")
			oItems:InsertItem(h,,"SChild 3")
			oItems:SetProperty("ExpandItem",h,.T.)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
415
How can I display true or false instead 0 and -1

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oItems

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:Columns():Add("Boolean"):FormatColumn := "value != 0 ? 'true' : 'false'"
		oItems := oComboBox:Items()
			oItems:AddItem(.T.)
			oItems:AddItem(.F.)
			oItems:AddItem(.T.)
			oItems:AddItem(0)
			oItems:AddItem(1)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
414
How can I display icons or images instead numbers

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oColumn
	LOCAL oItems

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
		oColumn := oComboBox:Columns():Add("Icons")
			oColumn:SetProperty("Def",17/*exCellCaptionFormat*/,1)
			oColumn:FormatColumn := "'The cell displays the icon <img>'+value+'</img> instead ' + value"
		oItems := oComboBox:Items()
			oItems:AddItem(1)
			oItems:AddItem(2)
			oItems:AddItem(3)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
413
How can I display the column using currency

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oItems

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:Columns():Add("Currency"):FormatColumn := "currency(dbl(value))"
		oItems := oComboBox:Items()
			oItems:AddItem("1.23")
			oItems:AddItem("2.34")
			oItems:AddItem("0")
			oItems:AddItem(5)
			oItems:AddItem("10000.99")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
412
How can I filter programatically using more columns

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oColumn,oColumn1
	LOCAL oColumns
	LOCAL oItems

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oComboBox:MarkSearchColumn := .F.
		oColumns := oComboBox:Columns()
			oColumns:Add("Car")
			oColumns:Add("Equipment")
		oItems := oComboBox:Items()
			oItems:SetProperty("CellCaption",oItems:AddItem("Mazda"),1,"Air Bag")
			oItems:SetProperty("CellCaption",oItems:AddItem("Toyota"),1,"Air Bag,Air condition")
			oItems:SetProperty("CellCaption",oItems:AddItem("Ford"),1,"Air condition")
			oItems:SetProperty("CellCaption",oItems:AddItem("Nissan"),1,"Air Bag,ABS,ESP")
			oItems:SetProperty("CellCaption",oItems:AddItem("Mazda"),1,"Air Bag, ABS,ESP")
			oItems:SetProperty("CellCaption",oItems:AddItem("Mazda"),1,"ABS,ESP")
		oColumn := oComboBox:Columns:Item("Car")
			oColumn:FilterType := 240/*exFilter*/
			oColumn:Filter := "Mazda"
		oColumn1 := oComboBox:Columns:Item("Equipment")
			oColumn1:FilterType := 3/*exPattern*/
			oColumn1:Filter := "*ABS*|*ESP*"
		oComboBox:ApplyFilter()
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
411
I need a combobox that supports selecting multiple items, preferably with checkboxes. I can't find an example of how to do this. Does your control support it

PROCEDURE OnCellStateChanged(oComboBox,Cell)
	oComboBox:LabelText := Transform(Cell,"")
	DevOut( Transform(oComboBox:Items:CellCaption(0,Cell),"") )
	DevOut( Transform(oComboBox:Items:CellState(0,Cell),"") )
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oItems

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:CellStateChanged := {|Cell| OnCellStateChanged(oComboBox,Cell)} /*Fired after cell's state has been changed.*/

		oComboBox:BeginUpdate()
		oComboBox:Style := 2/*DropDownList*/
		oComboBox:IntegralHeight := .T.
		oComboBox:HeaderVisible := .F.
		oComboBox:SingleEdit := .T.
		oComboBox:SearchColumnIndex := -1
		oComboBox:AdjustSearchColumn := .F.
		oComboBox:Columns():Add("Language"):SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
		oItems := oComboBox:Items()
			oItems:AddItem("English")
			oItems:AddItem("Hebrew")
			oItems:AddItem("Spanish")
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
410
How can I display a different caption in the label area, when I click the cell's check box

PROCEDURE OnCellStateChanged(oComboBox,Cell)
	oComboBox:LabelText := Transform(Cell,"")
	DevOut( Transform(oComboBox:Items:CellCaption(0,Cell),"") )
	DevOut( Transform(oComboBox:Items:CellState(0,Cell),"") )
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oItems

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:CellStateChanged := {|Cell| OnCellStateChanged(oComboBox,Cell)} /*Fired after cell's state has been changed.*/

		oComboBox:BeginUpdate()
		oComboBox:Style := 2/*DropDownList*/
		oComboBox:IntegralHeight := .T.
		oComboBox:HeaderVisible := .F.
		oComboBox:SingleEdit := .T.
		oComboBox:SearchColumnIndex := -1
		oComboBox:AdjustSearchColumn := .F.
		oComboBox:Columns():Add("Language"):SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
		oItems := oComboBox:Items()
			oItems:AddItem("English")
			oItems:AddItem("Hebrew")
			oItems:AddItem("Spanish")
		oComboBox:LabelText := " <b>custom</b> text "
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
409
How can I display a different caption in the label area

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oItems

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oComboBox:Style := 2/*DropDownList*/
		oComboBox:IntegralHeight := .T.
		oComboBox:HeaderVisible := .F.
		oComboBox:SingleEdit := .T.
		oComboBox:SearchColumnIndex := -1
		oComboBox:AdjustSearchColumn := .F.
		oComboBox:Columns():Add("Language"):SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
		oItems := oComboBox:Items()
			oItems:AddItem("English")
			oItems:AddItem("Hebrew")
			oItems:AddItem("Spanish")
		oComboBox:LabelText := " <b>custom</b> text "
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
408
How can I change the background appearance (ebn) for the filter field in the bottom part of the drop down portion

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oItems

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oComboBox:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn")
		oComboBox:FilterForVisible := .T.
		oComboBox:SetProperty("FilterForBackColor",0x1000000)
		oComboBox:IntegralHeight := .T.
		oComboBox:Columns():Add("Default")
		oItems := oComboBox:Items()
			oItems:AddItem("Item 1")
			oItems:AddItem("Item 2")
			oItems:AddItem("Item 3")
			oItems:AddItem("Item 4")
			oItems:AddItem("Item 5")
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
407
How can I change the background color for the filter field in the bottom part of the drop down portion

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oItems

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oComboBox:FilterForVisible := .T.
		oComboBox:SetProperty("FilterForBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oComboBox:IntegralHeight := .T.
		oComboBox:Columns():Add("Default")
		oItems := oComboBox:Items()
			oItems:AddItem("Item 1")
			oItems:AddItem("Item 2")
			oItems:AddItem("Item 3")
			oItems:AddItem("Item 4")
			oItems:AddItem("Item 5")
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
406
How can I display a filter field in the bottom part of the drop down portion

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oItems

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oComboBox:FilterForVisible := .T.
		oComboBox:IntegralHeight := .T.
		oComboBox:Columns():Add("Default")
		oItems := oComboBox:Items()
			oItems:AddItem("Item 1")
			oItems:AddItem("Item 2")
			oItems:AddItem("Item 3")
			oItems:AddItem("Item 4")
			oItems:AddItem("Item 5")
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
405
Does your control support RightToLeft property for RTL languages or right to left

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oColumn
	LOCAL oItems
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oComboBox:LinesAtRoot := -1/*exLinesAtRoot*/
		oColumn := oComboBox:Columns():Add("P1")
			oColumn:SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
			oColumn:PartialCheck := .T.
		oItems := oComboBox:Items()
			h := oItems:AddItem("Root")
			oItems:InsertItem(h,,"Child 1")
			oItems:InsertItem(h,,"Child 2")
			oItems:SetProperty("ExpandItem",h,.T.)
		oComboBox:RightToLeft := .T.
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
404
Is there any way to display the vertical scroll bar on the left side, as I want to align my data to the right

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oColumns

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:BeginUpdate()
		oColumns := oComboBox:Columns()
			oColumns:Add("C1")
			oColumns:Add("C2")
			oColumns:Add("C3")
			oColumns:Add("C4")
			oColumns:Add("C5")
			oColumns:Add("C6")
			oColumns:Add("C7")
			oColumns:Add("C8")
		oComboBox:RightToLeft := .T.
		oComboBox:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
403
Can I display the cell's check box after the text

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oColumn
	LOCAL oItems

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oColumn := oComboBox:Columns():Add("Column")
			oColumn:SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
			oColumn:SetProperty("Def",34/*exCellDrawPartsOrder*/,"caption,check")
		oItems := oComboBox:Items()
			oItems:SetProperty("CellHasCheckBox",oItems:AddItem("Caption 1"),0,.T.)
			oItems:SetProperty("CellHasCheckBox",oItems:AddItem("Caption 2"),0,.T.)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
402
Can I change the order of the parts in the cell, as checkbox after the text, and so on

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oItems
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
		oComboBox:Columns():Add("Column"):SetProperty("Def",34/*exCellDrawPartsOrder*/,"caption,check,icon,icons,picture")
		oItems := oComboBox:Items()
			h := oItems:AddItem("Text")
			oItems:SetProperty("CellImage",h,0,1)
			oItems:SetProperty("CellHasCheckBox",h,0,.T.)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
401
Can I have an image displayed after the text. Can I get that effect without using HTML content

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oComboBox
	LOCAL oItems
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oComboBox := XbpActiveXControl():new( oForm:drawingArea )
	oComboBox:CLSID  := "Exontrol.ComboBox.1" /*{CF170E7A-4391-44BD-8D93-29F8D2801EF7}*/
	oComboBox:create(,, {10,60},{610,370} )

		oComboBox:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
		oComboBox:Columns():Add("Column"):SetProperty("Def",34/*exCellDrawPartsOrder*/,"caption,icon,check,icons,picture")
		oItems := oComboBox:Items()
			h := oItems:AddItem("Text")
			oItems:SetProperty("CellImage",h,0,1)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN